#include "stm32f1xx_hal.h"
#include "tim.h"

uint16_t count=0;
float distance=0;
extern TIM_HandleTypeDef htim3;

void RCCdelay_us(uint32_t udelay)
{
  __IO uint32_t Delay = udelay * 72 / 8;//(SystemCoreClock / 8U / 1000000U)
    //stm32f1xx_hal_rcc.c -- static void RCC_Delay(uint32_t mdelay)
  do
  {
    __NOP();
  }
  while (Delay --);
}

void GET_Distance()
{
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,1);
	RCCdelay_us(12);
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,0);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_2)==1)
	{
		__HAL_TIM_SetCounter(&htim3,0);//清除
		HAL_TIM_Base_Start(&htim3);
	}
	else
	{
		HAL_TIM_Base_Stop(&htim3);
		count=__HAL_TIM_GetCounter(&htim3);
		distance=(count*170*100)/1000000;
	}
	
}